import sys
from auto import *
import os

def need_alert():
    if os.path.exists('alert.txt')==False:
        return True
    with open('alert.txt',encoding='utf8') as f:
        if len(f.read())<10:
            return True
        else:
            return False

def alert():
    if not need_alert():
        print('用户已经同意提示。')
        return True
    alert_text='注意！如果您因为使用本工具，而造成任何损失、纠纷，或者不良影响，作者概不负责！(本警告只出现一次)'

    ans=pyautogui.confirm(alert_text,title="注意事项",buttons=['同意','不同意'])
    if ans=='不同意':
        print('用户不同意提示，程序退出。')
        sys.exit()
    with open('alert.txt','w',encoding='utf8') as f:
        f.write(alert_text)
    return True

def get_like_count():
    prompt_text='本次运行需要点足多少个赞？(数量过多可能无法完成任务)'
    count=pyautogui.prompt(text=prompt_text,title="点赞设置",default='5')
    if not count:
        print('用户选择退出。')
        sys.exit()
    try:
        return int(count)
    except:
        pyautogui.alert('请输入一个整数！',title='错误')
        get_like_count()
    
def introduce():
    intro_text='''使用说明：
    1、登录PC版微信客户端
    2、打开朋友圈窗口(最好将窗口置于屏幕左上角)
    3、点击‘继续’，开始点赞   
    * 为了查看进度，请把命令窗口移到右边
    * 如果要终止程序，请把鼠标移动到左上角 
    '''
    ans=pyautogui.confirm(text=intro_text,title='准备',buttons=['继续','退出'])
    if ans=='退出':
        print('用户选择退出。')
        sys.exit()

def report_progress(liked,like_count):
    print(f'任务进度：{liked*100/like_count:.2f}%')

def begin_likes(count,liked):
    print('开始点赞...')
    try:
        do_like(count,0,progress_callback=report_progress)
    except LocateExcetion as e:
        text='哎呀，程序无法定位朋友圈窗口，请将窗口放到左上角，然后继续点赞'
        ans=pyautogui.confirm(text=text,title='错误',buttons=['继续','退出'])
        if ans=='退出':
            print('用户选择退出。')
            sys.exit()
        begin_likes(count,e.liked)
    except pyautogui.FailSafeException:
        print('用户主动中止程序。')
        sys.exit()
    except Exception as e:
        pyautogui.alert(text='发生未知错误！\n'+str(e))
        sys.exit()

def main():
    alert()
    count=get_like_count()
    print('User set like count:',count)
    introduce()
    begin_likes(count,0)
    pyautogui.alert(text='任务圆满完成！',title='报告')

if __name__ == '__main__':
    main()

